package iedcyt.acute.dataAccess.idao.acute1;


import iedcyt.acute.dataAccess.domain.acute1.CollGroupData;
import iedcyt.acute.dataAccess.idao.IDao;

import java.util.List;




public interface ICollGroupDataDao extends IDao {

	/**
	 * Se inserta una nueva propiedad de un grupo
	 * @param doc
	 */
	void insert(CollGroupData doc);
	
	/**
	 * Se actualiza una propiedad de un grupo
	 * @param doc
	 */
	void update(CollGroupData doc);

	/**
	 * Si la propiedad ya existe actualiza su valor. Si no existe se crea nueva.
	 * @param cGrD
	 */
	void updateOrInsert(CollGroupData cGrD);
	
	/**
	 * Se obtiene todas las propiedades de un grupo
	 * @param idGr
	 * @return
	 */
	List<CollGroupData> selectByIdGr(int idGr);
	
	/**
	 * Se obtiene la propiedad especificada de un grupo
	 * @param idGr
	 * @param dataName
	 * @return
	 */
	List<CollGroupData> selectByIdGrByDataName(int idGr, String dataName);
	
	/**
	 * Se seleccionan todas las propiedadesd de todos los grupos
	 * @return
	 */
	List<CollGroupData> selectAll();

	
/**
 * Se eliminan todas las propiedades de todos los grupos
 */
	void deleteAll();

	/**
	 * Se eliminan todas las propiedades de un grupo
	 * @param idGr
	 */
	void deleteByIdGr(int idGr);
	/**
	 * Se elimina la propiedad especificada de un grupo
	 * @param idGr
	 * @param dataName
	 */
	void deleteByIdGrByDataName(int idGr, String dataName);

	/**
	 * Obtiene un listado con todos los datanames existentes
	 * @return
	 */
	List<String> selectDistinctsDataNames();

	void create();



}

